98a8b98868f9989b30f8c2c44ca3e747ae00a4d2,org.dawnsci.conversion/src/org/dawnsci/conversion/converters/B18AverageConverter.java,B18AverageConverter,process,#IConversionContext#,50
Before Change
Dataset I0Temp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "I0", null));
Dataset ItTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "It", null));
Dataset IrefTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "Iref", null));
Dataset lnI0ItTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "lnI0It", null));
Dataset lnItIrefTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "lnItIref", null));
Dataset QexafsFFI0Temp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "QexafsFFI0", null));
if (file == files.get(0)) {
// first file
After Change
B18AverageAsciiData data = new B18AverageAsciiData();
//in case all files do not have the same number of rows, use the minimal number of rows
int nrows_min = Integer.MAX_VALUE;
int nrows_max = Integer.MIN_VALUE;
for (File file : files) {
//get the number of elements in the energy array
int irows = LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "qexafs_energy", null).getSize();
nrows_min = Math.min(nrows_min, irows);
nrows_max = Math.max(nrows_max, irows);
}
if (nrows_min != nrows_max) {
logger.warn("files in group do not have the same number of rows: calculating averages on minimum number of rows");
}
data.qexafs_energy = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(files.get(0).getAbsolutePath(), "qexafs_energy", null).getSlice(null, new int[]{nrows_min}, null));
for (File file : files) {
Dataset timeTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "time", null).getSlice(null, new int[]{nrows_min}, null));
Dataset I0Temp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "I0", null).getSlice(null, new int[]{nrows_min}, null));
Dataset ItTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "It", null).getSlice(null, new int[]{nrows_min}, null));
Dataset IrefTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "Iref", null).getSlice(null, new int[]{nrows_min}, null));
Dataset lnI0ItTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "lnI0It", null).getSlice(null, new int[]{nrows_min}, null));
Dataset lnItIrefTemp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "lnItIref", null).getSlice(null, new int[]{nrows_min}, null));
Dataset QexafsFFI0Temp = DatasetUtils.convertToDataset(LocalServiceManager.getLoaderService().getDataset(file.getAbsolutePath(), "QexafsFFI0", null).getSlice(null, new int[]{nrows_min}, null));
if (file == files.get(0)) {
// first file